home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / prog / adlip.arj / DEMOBAS.BAS < prev    next >
BASIC Source File  |  1987-06-26  |  4KB  |  108 lines

  1. 10 REM        
  2. 20 REM            SOUND DRIVER BASIC INTERFACE EXAMPLE
  3. 30 REM
  4. 40 DEFINT A-Z
  5. 50 REM
  6. 60 FSDINIT         = 0
  7. 70 FSDRELTIMESTART = 2
  8. 80 FSDSETSTATE     = 3
  9. 90 FSDGETSTATE     = 4
  10. 100 FSDFLUSH        = 5
  11. 110 FSDSETMODE      = 6
  12. 120 FSDGETMODE      = 7
  13. 130 FSDSETRELVOLUME = 8
  14. 140 FSDSETTEMPO     = 9
  15. 150 FSDSETTRANPOSE  = 10
  16. 160 FSDGETTRANSPOSE = 11
  17. 170 FSDSETACTVOICE  = 12
  18. 180 FSDGETACTVOICE  = 13
  19. 190 FSDPLAYNOTEDEL  = 14
  20. 200 FSDPLAYNOTE     = 15
  21. 210 FSDSETTIMBRE    = 16
  22. 220 FSDSETPITCH     = 17
  23. 230 FSDSETTICKBEAT  = 18
  24. 240 FSDNOTEON       = 19
  25. 250 FSDNOTEOFF      = 20
  26. 260 FSDTIMBRE       = 21
  27. 270 REM
  28. 280 FIN = 100
  29. 290 S0 = 0: S1 = 0: S2 = 0: S3 = 0: S4 = 0: S5 = 0:    REM RESET ARGUMENTS
  30. 300 I = 0: MEM = 0: BYTE = 0
  31. 310 FUNCSIZE = 66:                                      REM CODE SIZE
  32. 320 DIM FUNC%( FUNCSIZE /2 +1):                         REM CODE ARRAY
  33. 330 DIM INSTRUM( 26):                                   REM TIMBRE DATA
  34. 340 REM 
  35. 350 REM            LOAD TIMBRE INTO ARRAY, FROM DATA
  36. 360 REM
  37. 370 MEM = VARPTR( INSTRUM(0))
  38. 380 FOR I = 1 TO 52: READ BYTE: POKE MEM, BYTE: MEM = MEM +1: NEXT I
  39. 390 REM
  40. 400 REM            LOAD CODE (SOUNDBAS.ASM) INTO FUNC% ARRAY
  41. 410 REM
  42. 420 MEM = VARPTR( FUNC%(0))
  43. 430 FOR I = 1 TO FUNCSIZE
  44. 440 READ BYTE
  45. 450 POKE MEM, BYTE
  46. 460 MEM = MEM +1
  47. 470 NEXT I
  48. 480 REM
  49. 490 REM            SET UP SOUND DRIVER
  50. 500 REM
  51. 510 S0 = FSDINIT: GOSUB 730:                REM INITIALIZE SD
  52. 520 S0 = FSDRELTIMESTART: S1 = 0: S2 = 1: GOSUB 730:   REM START TIME
  53. 530 S0 = FSDSETTEMPO: S1=100: S2=0: S3=1:  GOSUB 730:    REM TEMPO = 100
  54. 540 S0 = FSDSETACTVOICE: S1 = 0:           GOSUB 730:    REM SET ACTIVE VOICE
  55. 550 S0 = FSDSETTIMBRE: MEM = VARPTR( FUNC(0)):        REM SET INSTRUMENT
  56. 560 CALL MEM( S0, INSTRUM(0), S2, S3, S4, S5)
  57. 570 GOSUB 630:                    REM LOAD SONG INTO SD
  58. 580 S0 = FSDSETSTATE: S1 = 1: GOSUB 730: REM START PLAYING SONG
  59. 590 S0 = FSDGETSTATE: GOSUB 730:               REM TEST IF FINISH
  60. 600 IF S0 <> 0 GOTO 590
  61. 610 STOP
  62. 620 REM            PLAY SONGS
  63. 630 S0 = FSDPLAYNOTE
  64. 640 READ S1: READ S2: READ S3
  65. 650 IF S1 = FIN THEN RETURN
  66. 660 GOSUB 730
  67. 670 GOTO 630
  68. 680 REM
  69. 690 STOP
  70. 700 REM
  71. 710 REM            SOUND DRIVER CALL
  72. 720 REM
  73. 730 MEM = VARPTR( FUNC%(0))
  74. 740 CALL MEM( S0, S1, S2, S3, S4, S5)
  75. 750 RETURN
  76. 760 REM
  77. 770 REM intrument marimba3
  78. 780 DATA &H01, &H00, &H05, &H00, &H05, &H00, &H0D, &H00, &H01
  79. 790 DATA &H00, &H00, &H00, &H0A, &H00, &H05, &H00, &H0E, &H00, &H01, &H00
  80. 800 DATA &H00, &H00, &H00, &H00, &H01, &H00, &H02, &H00, &H01, &H00, &H00
  81. 810 DATA &H00, &H0F, &H00, &H01, &H00, &H00, &H00, &H09, &H00, &H03, &H00
  82. 820 DATA &H00, &H00, &H01, &H00, &H00, &H00, &H00, &H00, &H01, &H00
  83. 830 REM
  84. 840 REM MACHINE CODE (SOUNDBAS.ASM)
  85. 850 DATA &H06, &H56, &H57, &H8B, &HEC, &H8B, &H5E, &H14, &H8B, &H37, &H8B
  86. 860 DATA &H5E, &H0A, &HFF, &H37, &H8B, &H5E, &H0C, &HFF, &H37, &H8B, &H5E
  87. 870 DATA &H0E, &HFF, &H37, &H8B, &H5E, &H10, &HFF, &H37, &H83, &HFE, &H10
  88. 880 DATA &H75, &H07, &H1E, &HFF, &H76, &H12, &HEB, &H06, &H90, &H8B, &H5E
  89. 890 DATA &H12, &HFF, &H37, &H16, &H07, &H8B, &HDC, &HCD, &H65, &H8B, &HE5
  90. 900 DATA &H8B, &H5E, &H14, &H89, &H07, &H5F, &H5E, &H07, &HCA, &H0C, &H00
  91. 910 REM
  92. 920 REM        SONG #1
  93. 930 DATA 0, 1, 2
  94. 940 DATA 2, 1, 2
  95. 950 DATA 4, 3, 4
  96. 960 DATA 7, 1, 4
  97. 970 DATA 7, 1, 1
  98. 980 DATA 4, 3, 4
  99. 990 DATA 0, 1, 4
  100. 1000 DATA 4, 3, 2
  101. 1010 DATA 2, 1, 2
  102. 1020 DATA 0, 2, 1
  103. 1030 REM 
  104. 1040 REM         SONG #2
  105. 1050 DATA 0,1,2,4,1,2,7,1,2,12,3,2,2,3,4,5,1,4,9,1,2,12,3,2
  106. 1060 DATA 11,3,4,9,1,4,7,1,2,5,1,1,2,1,2,4,1,1,9,1,2,7,3,2
  107. 1070 DATA 100, 100, 100
  108.